﻿namespace DataManageSystem.Common
{
    public class Result
    {
        // 常量定义
        public static readonly string CODE_SUCCESS = "200";
        public static readonly string CODE_AUTH_ERROR = "401";
        public static readonly string CODE_SYS_ERROR = "500";

        // 请求返回的编码
        public string Code { get; set; }

        // 错误信息或其他消息
        public string Msg { get; set; }

        // 返回的数据
        public object Data { get; set; }

        // 分页时的总数 只有分页查询时才返回
        public int? Total { get; set; }

        // 无参构造函数
        public Result() { }

        // 全参构造函数
        public Result(string code, string msg, object data, int? total = null)
        {
            Code = code;
            Msg = msg;
            Data = data;
            Total = total;
        }

        // 返回成功的结果，默认信息为“请求成功”
        public static Result Success()
        {
            return new Result(CODE_SUCCESS, "请求成功", null);
        }

        // 返回成功的结果，包含数据
        public static Result Success(object data, int? total = null)
        {
            return new Result(CODE_SUCCESS, "请求成功", data, total);
        }

        // 返回错误的结果，包含错误信息
        public static Result Error(string msg)
        {
            return new Result(CODE_SYS_ERROR, msg, null);
        }

        // 返回错误的结果，包含自定义错误码和错误信息
        public static Result Error(string code, string msg)
        {
            return new Result(code, msg, null);
        }

        // 返回系统错误的结果
        public static Result Error()
        {
            return new Result(CODE_SYS_ERROR, "系统错误", null);
        }
    }
}
